package com.start.form.engine.core;

import com.start.form.engine.core.model.StartFormColumnModel;
import com.start.form.engine.core.entity.StartFormConfig;
import com.start.form.engine.core.model.StartFormConfigModel;

import java.util.List;

public interface ITableInfo extends StartFormEngineConstant.FormBaseColumns {
    /**
     * 获取表配置
     *
     * @param tableId 表id
     * @return
     */
    default StartFormConfigModel getTable(String tableId) {
        return getTable(tableId, false);
    }

    /**
     * 获取表配置
     *
     * @param tableId    表id
     * @param loadColumn 是否加载列信息
     * @return
     */
    StartFormConfigModel getTable(String tableId, boolean loadColumn);

    StartFormConfigModel getTable(StartFormConfig config, boolean loadColumn);

    /**
     * 获取列信息
     *
     * @param tableId 数据表id
     * @return
     */
    default List<StartFormColumnModel> getStoreColumn(String tableId) {
        return getStoreColumn(getTable(tableId));
    }

    /**
     * 获取数据表列信息
     *
     * @param config 数据表信息
     * @return
     */
    List<StartFormColumnModel> getStoreColumn(StartFormConfig config);
}
